package br.com.pentagrama.service.dto;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import sun.security.action.GetLongAction;

public class ResultadoPing {
	
	public List<Long> resultados = new ArrayList<Long>();
	
	private int falhas = 0;
	
	
	public void falha() {
		falhas++;
	}
	
	public List<Long> getResultados() {
		return resultados;
	}

	public void setResultados(List<Long> resultados) {
		this.resultados = resultados;
	}

	public int getFalhas() {
		return falhas;
	}

	public long getMedia() {
		if(resultados.size() == 0) {
			return -1;
		}
		
		long soma = 0;
		for (Long l : resultados) {
			soma += l;
		}
		return soma/resultados.size();
	}
	
	public long getMediana() {
		if(resultados.size() == 0) {
			return -1;
		}
		
		Collections.sort(resultados);
		if(resultados.size() == 1) {
			return resultados.get(0);
		}else if(resultados.size() % 2 == 1) {
			return resultados.get(resultados.size() / 2 + 1);
		} else {
			long m1 = resultados.get(resultados.size() / 2);
			long m2 = resultados.get(resultados.size() / 2 + 1);
			return m1 + m2 / 2;
		}
	}
	
	public double getBanda() {
		//BW = ws/rtt (tamanho do pacote / latência em segundos)
		double segundos = (double)getMedia()/1000;
		return 750000/segundos*8;
	}
	
}
